<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // Object.defineProperties(object,descriptors);
        // 对某个对象进行多个属性的统一定义和属性功能描述
        // descriptors取值类型是object
            // key 是需要定义的属性名称
            // value是该属性的相关描述，取值object
        // 返回的是一个被构建了属性的新对象
       
        var num=20;
        var user=Object.defineProperties({},{
            name:{
                value:"tom",
                writable:true,
                configurable:true,
                enumerable:true
            },
            age:{
                configurable:true,
                enumerable:true,
                get(){
                    console.log("get");
                    return num;
                },
                set(val){
                    console.log("set");
                    num=val;
                }
            }
        });
        
        user.age=100;
        console.log(user.age);

        // Object.getOwnPropertyDescriptor(object, propertyName)
        // 从一个对象中获取指定属性的相关信息(是否可修改，可删除，可遍历)
        console.log(Object.getOwnPropertyDescriptor(user,"name"));
        console.log(Object.getOwnPropertyDescriptor(user,"age"));
    </script>
</head>
<body>
    
</body>
</html>